﻿/*
 * Created by SharpDevelop.
 * User: CrOnO
 * Date: 29/09/2011
 * Time: 01:05 a.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.Collections.Generic;
using Business_Entity;
using Business_Logic;

namespace PetSoft.GUI.RRHH
{
	/// <summary>
	/// Description of GUI.
	/// </summary>
	public partial class GUIMantenerCalendario : Form
	{
		public BEEmpleado empleado;
		private List<BEAgendaActividad> lista;
		private BEAgendaActividad actividadMod;
		private int colCheck;
		private int colN;
		private int flag = 0; //0 es registrar. 1 es modificar
		
		public GUIMantenerCalendario()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			/* codigo de privilegios */
            
            this.aceptarBTN.Enabled = false;
            this.modificarBTN.Enabled = false;
            this.eliminarBTN.Enabled = false;
            
            for (int i=0;i<BLInfo.usuarioActual.Rol.Privilegio.Count;i++){
                if ((new BLPrivilegio()).existePrivilegio(2,"RRHH","EMPL",BLInfo.UsuarioActual.Rol.Privilegio)){
                    this.aceptarBTN.Enabled = true;
                    this.modificarBTN.Enabled = true;
                    this.eliminarBTN.Enabled = true;
                }
            }
            
            /*end*/
             
			this.actividadMod = null;
			this.colCheck = 0;
			this.colN = 5;
			
			this.calendarioDGV.CellDoubleClick += new DataGridViewCellEventHandler(this.doubleClickResultadosDGV);
			this.horaCB.Text = "<Seleccionar>";
			this.minutoCB.Text = "<Seleccionar>";
			this.segundoCB.Text = "<Seleccionar>";
			this.actividadCB.Text = "<Seleccionar>";
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
				
		public void aceptarClick(object sender, EventArgs e)
		{
			try{
				if (calendarioMC.SelectionStart < DateTime.Today)
				{
					if (this.flag == 0)
						MessageBox.Show("No puede agregar una actividad con fecha anterior a hoy "+DateTime.Today.ToShortDateString(),"Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
					if (this.flag == 1)
						MessageBox.Show("No puede modificar una actividad con fecha anterior a hoy "+DateTime.Today.ToShortDateString(),"Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
				}
				else {
					if (this.actividadCB.Text == "<Seleccionar>")
					{
						MessageBox.Show("Falta ingresar una actividad","Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
					}
					else {
						if (this.flag == 0)
						{
							if ((this.horaCB.Text == "<Seleccionar>") &&
							    (this.segundoCB.Text == "<Seleccionar>") &&
							    (this.minutoCB.Text == "<Seleccionar>"))
							{
								if (MessageBox.Show("¿Está seguro que desea guardar esta actividad?", "Pregunta", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)
								{
									BLAgendaActividad bl = new BLAgendaActividad();
									BEAgendaActividad be = new BEAgendaActividad(fechaDTP.Value, horaDTP.Value,
								    	                                         0, 0, 0, actividadCB.Text);
									be.IdEmpleado = empleado.IdEmpleado;
									int res = bl.registrarActividad(be);
									if (res == 1){
										MessageBox.Show("Calendario actualizado", "Aviso",MessageBoxButtons.OK,MessageBoxIcon.Information);
										this.actualizarCalendario();
										//this.Close();					
									}
									else if (res == 2){
										MessageBox.Show("Empleado aun no marca asistencia", "Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
										this.Close();					
									}
									else if (res == 3){
										MessageBox.Show("No se puede registrar la actividad por cruce de horarios", "Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);					
									}
									else 
									{
										MessageBox.Show("Error actualizando calendario","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
									}
								}
							}
							
							else 
							{
								if (MessageBox.Show("¿Está seguro que desea guardar esta actividad?", "Confirmación", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)
								{
									BLAgendaActividad bl = new BLAgendaActividad();
									int hora, minuto, segundo;
									
									if (horaCB.Text != "<Seleccionar>")
									{
										hora = int.Parse(horaCB.Text);
									}
									else
									{
										hora = 0;
									}
									
									if (minutoCB.Text != "<Seleccionar>")
									{
										minuto = int.Parse(minutoCB.Text);
									}
									else
									{
										minuto = 0;
									}
									
									if (segundoCB.Text != "<Seleccionar>")
									{
										segundo = int.Parse(segundoCB.Text);
									}
									else
									{
										segundo = 0;
									}
									BEAgendaActividad be = new BEAgendaActividad(fechaDTP.Value, horaDTP.Value,
									                                             hora, minuto, segundo,
									                                             actividadCB.Text);
									be.IdEmpleado = empleado.IdEmpleado;
									int res = bl.registrarActividad(be);
									if (res == 1){
										MessageBox.Show("Calendario actualizado", "Aviso",MessageBoxButtons.OK,MessageBoxIcon.Information);
										this.actualizarCalendario();
										//this.Close();					
									}
									else if (res == 2){
										MessageBox.Show("Empleado aun no marca asistencia", "Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
										this.Close();					
									}
									else if (res == 3){
										MessageBox.Show("No se puede registrar la actividad por cruce de horarios", "Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);					
									}
									else 
									{
										MessageBox.Show("Error actualizando calendario","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
									}
								}
							}
						}
						else if (this.flag == 1)
						{			
							BLAgendaActividad bl = new BLAgendaActividad();
							BEAgendaActividad be = this.actividadMod;
							
							be.Fecha = fechaDTP.Value;
							be.HoraInicio = horaDTP.Value;
							be.HoraFin = horaFinDTP.Value;
							be.Actividad = actividadCB.Text;
							
							if (MessageBox.Show("¿Está seguro que desea modificar esta actividad?", "Confirmación", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)
							{
								int res = bl.modificarActividad(be);
								
								if (res == 1){
									MessageBox.Show("Actividad actualizada.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
									
									this.flag = 0;
									this.mostHoyBTN.Enabled = true;
									this.mostFuturoBTN.Enabled = true;
									this.mostPasadoBTN.Enabled = true;
									this.calendarioDGV.Enabled = true;
									this.selTodo.Enabled = true;
									this.modificarBTN.Enabled = true;
									this.eliminarBTN.Enabled = true;
									this.referenciaDTP.Enabled = true;
									this.ingresarNuevaActividadLB.Text = "Ingresar nueva actividad:";
									this.aceptarBTN.Text = "Aceptar";
									this.cancelarBTN.Text = "Cerrar";
									
									this.horaCB.Text = "<Seleccionar>";
									this.minutoCB.Text = "<Seleccionar>";
									this.segundoCB.Text = "<Seleccionar>";
									this.actividadCB.Text = "<Seleccionar>";
									this.horaFinDTP.Value = this.horaDTP.Value;
									
									this.actualizarCalendario();
									//this.Close();					
								}
								else if (res == 2){
									MessageBox.Show("?", "Aviso");
									this.Close();					
								}
								else if (res == 3){
									MessageBox.Show("No se puede modificar la actividad por cruce de horarios", "Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);					
								}
								else 
								{
									MessageBox.Show("Error actualizando actividad.","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
								}
							}
							else
							{
								this.flag = 0;
								this.mostHoyBTN.Enabled = true;
								this.mostFuturoBTN.Enabled = true;
								this.mostPasadoBTN.Enabled = true;
								this.calendarioDGV.Enabled = true;
								this.selTodo.Enabled = true;
								this.modificarBTN.Enabled = true;
								this.eliminarBTN.Enabled = true;
								this.referenciaDTP.Enabled = true;
								this.ingresarNuevaActividadLB.Text = "Ingresar nueva actividad:";
								this.aceptarBTN.Text = "Aceptar";
								this.cancelarBTN.Text = "Cerrar";
								
								this.horaCB.Text = "<Seleccionar>";
								this.minutoCB.Text = "<Seleccionar>";
								this.segundoCB.Text = "<Seleccionar>";
								this.actividadCB.Text = "<Seleccionar>";
								this.horaFinDTP.Value = this.horaDTP.Value;
							}
						}
					}
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		public void cancelarClick(object sender, EventArgs e)
		{
			try{
				if (this.flag == 0){
					this.Close();
				}	
				else if (this.flag == 1)
				{
					this.flag = 0;
					this.mostHoyBTN.Enabled = true;
					this.mostFuturoBTN.Enabled = true;
					this.mostPasadoBTN.Enabled = true;
					this.calendarioDGV.Enabled = true;
					this.selTodo.Enabled = true;
					this.modificarBTN.Enabled = true;
					this.eliminarBTN.Enabled = true;
					this.referenciaDTP.Enabled = true;
					this.ingresarNuevaActividadLB.Text = "Ingresar nueva actividad:";
					this.aceptarBTN.Text = "Aceptar";
					this.cancelarBTN.Text = "Cerrar";
					
					this.horaCB.Text = "<Seleccionar>";
					this.minutoCB.Text = "<Seleccionar>";
					this.segundoCB.Text = "<Seleccionar>";
					this.actividadCB.Text = "<Seleccionar>";
					this.horaFinDTP.Value = this.horaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
	
		public void llenarDatos(BEEmpleado empleado)
		{
			try
			{
				this.nombreTB.Text = empleado.Nombre;
				this.apPaternoTB.Text = empleado.ApPaterno;
				this.apMaternoTB.Text = empleado.ApMaterno;
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void horaSelectedIndexChanged(object sender, EventArgs e)
		{
			try
			{
				this.horaFinDTP.Value = this.horaDTP.Value;
				if (this.horaCB.Text != "<Seleccionar>")
					this.horaFinDTP.Value = this.horaFinDTP.Value.AddHours(int.Parse(this.horaCB.Text));
				if (this.minutoCB.Text != "<Seleccionar>")
					this.horaFinDTP.Value = this.horaFinDTP.Value.AddMinutes(int.Parse(this.minutoCB.Text));
				if (this.segundoCB.Text != "<Seleccionar>")
					this.horaFinDTP.Value = this.horaFinDTP.Value.AddSeconds(int.Parse(this.segundoCB.Text));
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void actualizarCalendario()
		{
			try
			{
				this.fechaDTP.Value = calendarioMC.SelectionStart;
				this.referenciaDTP.Value = calendarioMC.SelectionStart;
				calendarioDGV.Rows.Clear();
				BLAgenda bl = new BLAgenda();
				List<BEAgendaActividad> be = new List<BEAgendaActividad>();
			
				be = bl.buscarActividades(this.empleado, fechaDTP.Value);
			
				if (be != null)
				{
					this.calendarioDGV.AllowUserToAddRows = true;
					this.lista = be;
					this.calendarioDGV.Rows.Clear();
					for (int j=0; j<be.Count; j++)
					{
						string[] fila = null;
						fila = new string[]{
									false.ToString(),
									be[j].HoraInicio.ToLongTimeString().ToString(),
									be[j].HoraFin.ToLongTimeString().ToString(),
									be[j].Actividad,
									be[j].Fecha.ToShortDateString(),
									j.ToString()
						            };
						this.calendarioDGV.Rows.Add(fila);
					}
					this.calendarioDGV.AllowUserToAddRows = false;
					if (this.calendarioDGV.Rows.Count == 1)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
					else if (this.calendarioDGV.Rows.Count == 0)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
					else if (this.calendarioDGV.Rows.Count > 1)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
				}
				else
				{
					this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
				
		void eliminarClick(object sender, EventArgs e)
		{
			int seguir = 1;
			try
			{
				List<BEAgendaActividad> eliminar = new List<BEAgendaActividad>();
				foreach(DataGridViewRow fila in this.calendarioDGV.Rows)
				{
					if((fila.Cells[this.colCheck].Value != null) && bool.Parse(fila.Cells[this.colCheck].Value.ToString()) == true)
					{
						eliminar.Add(this.lista[int.Parse(fila.Cells[this.colN].Value.ToString())]);
					}
				}
				foreach(BEAgendaActividad acti in eliminar)
				{
					if ((acti.Actividad != "OCUPADO") &&
						(acti.Actividad != "PERMISO EXCEPCIONAL") &&
					    (acti.Actividad != "NUEVA HORA DE ENTRADA PERMITIDA") &&
				        (acti.Actividad != "NUEVA HORA DE SALIDA PERMITIDA"))
					{
						MessageBox.Show("No puede eliminar una actividad relacionada a un Pedido de Venta desde aquí","Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
						seguir = 0;
						break;
					}
				}
				if (seguir == 1)
				{
					if (eliminar.Count > 0)
					{	
						String mensaje = "";
						if (eliminar.Count == 1)
							mensaje = "¿Está seguro que desea eliminar la actividad seleccionada?";
						else if (eliminar.Count > 1)
							mensaje = "¿Está seguro que desea eliminar las actividades seleccionadas?";
						if (MessageBox.Show(mensaje, "Confirmación", MessageBoxButtons.YesNo) == DialogResult.Yes)
						{
							int resultado;
							BLAgenda bl = new BLAgenda();
							resultado = bl.eliminarActividad(eliminar);
							
							if (resultado == 1)
							{
								foreach(BEAgendaActividad actividad in eliminar)
								{
									this.lista.Remove(actividad);
								}
								
								this.calendarioDGV.AllowUserToAddRows = true;
								this.calendarioDGV.Rows.Clear();
								for (int j=0; j<lista.Count; j++)
								{
									string[] fila = null;
									fila = new string[]{
												false.ToString(),
												lista[j].HoraInicio.ToLongTimeString().ToString(),
												lista[j].HoraFin.ToLongTimeString().ToString(),
												lista[j].Actividad,
												lista[j].Fecha.ToShortDateString(),
												j.ToString()
									            };
									this.calendarioDGV.Rows.Add(fila);
								}
								this.calendarioDGV.AllowUserToAddRows = false;
								if (this.calendarioDGV.Rows.Count == 1)
									this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
								else if (this.calendarioDGV.Rows.Count == 0)
									this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
								else if (this.calendarioDGV.Rows.Count > 1)
									this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
	
								//MessageBox.Show("Empleado eliminado", "Aviso");			
							}
							else
							{
								this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
								//MessageBox.Show("Error en la eliminación de empleado(s)","Error");
							}
						}
					}
					else
					{
						MessageBox.Show("Seleccione al menos una actividad","Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
					}
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void mostPasadasClick(object sender, EventArgs e)
		{
			try
			{
				this.fechaDTP.Value = calendarioMC.SelectionStart;
				this.referenciaDTP.Value = calendarioMC.SelectionStart;
				calendarioDGV.Rows.Clear();
				BLAgenda bl = new BLAgenda();
				List<BEAgendaActividad> be = new List<BEAgendaActividad>();
			
				be = bl.buscarActividadesPasadas(this.empleado, fechaDTP.Value);
			
				if (be != null)
				{
					this.calendarioDGV.AllowUserToAddRows = true;
					this.lista = be;
					this.calendarioDGV.Rows.Clear();
					for (int j=0; j<be.Count; j++)
					{
						string[] fila = null;
						fila = new string[]{
									false.ToString(),
									be[j].HoraInicio.ToLongTimeString().ToString(),
									be[j].HoraFin.ToLongTimeString().ToString(),
									be[j].Actividad,
									be[j].Fecha.ToShortDateString(),
									j.ToString()
						            };
						this.calendarioDGV.Rows.Add(fila);
					}
					this.calendarioDGV.AllowUserToAddRows = false;
					if (this.calendarioDGV.Rows.Count == 1)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
					else if (this.calendarioDGV.Rows.Count == 0)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
					else if (this.calendarioDGV.Rows.Count > 1)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
				}
				else
				{
					this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}	
		}
		
		void mostFuturasClick(object sender, EventArgs e)
		{
			try
			{
				this.fechaDTP.Value = calendarioMC.SelectionStart;
				this.referenciaDTP.Value = calendarioMC.SelectionStart;
				calendarioDGV.Rows.Clear();
				BLAgenda bl = new BLAgenda();
				List<BEAgendaActividad> be = new List<BEAgendaActividad>();
			
				be = bl.buscarActividadesFuturas(this.empleado, fechaDTP.Value);
			
				if (be != null)
				{
					this.calendarioDGV.AllowUserToAddRows = true;
					this.lista = be;
					this.calendarioDGV.Rows.Clear();
					for (int j=0; j<be.Count; j++)
					{
						string[] fila = null;
						fila = new string[]{
									false.ToString(),
									be[j].HoraInicio.ToLongTimeString().ToString(),
									be[j].HoraFin.ToLongTimeString().ToString(),
									be[j].Actividad,
									be[j].Fecha.ToShortDateString(),
									j.ToString()
						            };
						this.calendarioDGV.Rows.Add(fila);
					}
					this.calendarioDGV.AllowUserToAddRows = false;
					if (this.calendarioDGV.Rows.Count == 1)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
					else if (this.calendarioDGV.Rows.Count == 0)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
					else if (this.calendarioDGV.Rows.Count > 1)
						this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: " + this.calendarioDGV.Rows.Count;
				}
				else
				{
					this.nroResultadosLB.Text = "Cantidad de Actividades encontradas: 0";
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
				
		void mostHoyClick(object sender, EventArgs e)
		{
				actualizarCalendario();
		}
		
		void modificarClick(object sender, EventArgs e)
		{
			try
			{
				int cont = 0;
				int aux = 0;
				int pos = 0;
				foreach (DataGridViewRow fila in calendarioDGV.Rows)
				{
					if (fila.Cells[this.colCheck].Value != null && bool.Parse(fila.Cells[this.colCheck].Value.ToString()))
					{
						cont++;
						pos = aux;
					}
					aux++;
				}
				if (cont == 0)
				{
					MessageBox.Show("Seleccione una actividad.","Aviso");	
				}
				else if (cont == 1)
				{
					DataGridViewRow fila = calendarioDGV.Rows[pos];
					if (fila.Cells[this.colCheck].Value != null && bool.Parse(fila.Cells[this.colCheck].Value.ToString()))
					{	
						this.actividadMod = lista[int.Parse(fila.Cells[this.colN].Value.ToString())];
						this.actividadMod.IdEmpleado = this.empleado.IdEmpleado;
						
						if (this.actividadMod.Fecha < DateTime.Today)
						{
							MessageBox.Show("No puede modificar una actividad con fecha anterior a hoy "+DateTime.Today.ToShortDateString(),"Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
						}
						else if ((this.actividadMod.Actividad != "OCUPADO") && 
						         (this.actividadMod.Actividad != "PERMISO EXCEPCIONAL") &&
						         (this.actividadMod.Actividad != "NUEVA HORA DE ENTRADA PERMITIDA") && 
						         (this.actividadMod.Actividad != "NUEVA HORA DE SALIDA PERMITIDA"))
						{
							MessageBox.Show("No puede modificar una actividad relacionada a un Pedido de Venta desde aquí","Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
						}
						else if (this.actividadMod.Fecha >= DateTime.Today)
						{
							this.flag = 1;
							
							this.mostFuturoBTN.Enabled = false;
							this.mostPasadoBTN.Enabled = false;
							this.mostHoyBTN.Enabled = false;
							this.calendarioDGV.Enabled = false;
							this.selTodo.Enabled = false;
							this.modificarBTN.Enabled = false;
							this.eliminarBTN.Enabled = false;
							this.referenciaDTP.Enabled = false;
							this.ingresarNuevaActividadLB.Text = "Modifique la actividad:";
							this.aceptarBTN.Text = "Guardar";
							this.cancelarBTN.Text = "Cancelar";
							
							if ((this.actividadMod.Actividad != "NUEVA HORA DE ENTRADA PERMITIDA") && 
							    (this.actividadMod.Actividad != "NUEVA HORA DE SALIDA PERMITIDA"))
							{
								this.horaDTP.Value = this.actividadMod.HoraInicio;
								this.horaFinDTP.Value = this.actividadMod.HoraFin;
								this.actividadCB.Text = this.actividadMod.Actividad;
								this.horaCB.Text = (this.actividadMod.HoraFin.Hour - this.actividadMod.HoraInicio.Hour).ToString();
								this.minutoCB.Text = (this.actividadMod.HoraFin.Minute - this.actividadMod.HoraInicio.Minute).ToString();
								this.segundoCB.Text = (this.actividadMod.HoraFin.Second - this.actividadMod.HoraInicio.Second).ToString();
							}
							else
							{
								this.horaDTP.Value = this.actividadMod.HoraInicio;
								this.horaFinDTP.Value = this.actividadMod.HoraFin;
								this.actividadCB.Text = this.actividadMod.Actividad;
								this.horaCB.Text = "<Seleccionar>";
								this.minutoCB.Text = "<Seleccionar>";
								this.segundoCB.Text = "<Seleccionar>";
							}
						}
					}
					cont++;
				}
				else if (cont > 1)
				{
					MessageBox.Show("Seleccione sólo una actividad.","Aviso",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);		
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
				
		void eventoDateSelected(object sender, DateRangeEventArgs e)
		{
			actualizarCalendario();

		}
		
		void GUIMantenerCalendarioLoad(object sender, EventArgs e)
		{
			actualizarCalendario();
		}
		
		void seleccionarTodoCheckedChanged(object sender, EventArgs e)
		{
			try
			{
				foreach (DataGridViewRow fila in calendarioDGV.Rows)
				{
					if (this.selTodo.Checked == true)
						fila.Cells[this.colCheck].Value = (bool) true;
					if (this.selTodo.Checked == false)
						fila.Cells[this.colCheck].Value = (bool) false;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void limpiarClick(object sender, EventArgs e)
		{
			try
			{
				this.horaCB.Text = "<Seleccionar>";
				this.minutoCB.Text = "<Seleccionar>";
				this.segundoCB.Text = "<Seleccionar>";
				this.actividadCB.Text = "<Seleccionar>";
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void doubleClickResultadosDGV(object sender, DataGridViewCellEventArgs e)
		{
			try{
				if (calendarioDGV.Rows.Count > 0)
				{
					if ((e.RowIndex != -1) && (e.ColumnIndex != -1))
					{
						foreach (DataGridViewRow fila in this.calendarioDGV.SelectedRows)
						{
							if ((fila.Cells[this.colCheck].Value != null) && !(bool.Parse(fila.Cells[this.colCheck].Value.ToString())))
								fila.Cells[this.colCheck].Value = bool.Parse(true.ToString());
							else if ((fila.Cells[this.colCheck].Value != null) && (bool.Parse(fila.Cells[this.colCheck].Value.ToString())))
								fila.Cells[this.colCheck].Value = bool.Parse(false.ToString());
						}
					}
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void referenciaValueChanged(object sender, EventArgs e)
		{
			this.calendarioMC.SelectionStart = this.referenciaDTP.Value;
			actualizarCalendario();
		}
		
		void ActividadCBSelectedIndexChanged(object sender, EventArgs e)
		{
			if ((actividadCB.Text == "NUEVA HORA DE ENTRADA PERMITIDA") || (actividadCB.Text == "NUEVA HORA DE SALIDA PERMITIDA"))
			{
				horaFinDTP.Value = horaDTP.Value;
				horaCB.Text = "<Seleccionar>";
				minutoCB.Text = "<Seleccionar>";
				segundoCB.Text = "<Seleccionar>";
				horaCB.Enabled = false;
				minutoCB.Enabled = false;
				segundoCB.Enabled = false;
			}
			else
			{
				horaCB.Enabled = true;
				minutoCB.Enabled = true;
				segundoCB.Enabled = true;
			}
		}
	}
}
